import View from 'ol/View';
import Map from 'ol/Map';
import { defaults as defaultInteractions } from 'ol/interaction';

/**
 * @description: 地图初始化
 * @param {string} containerId 容器id，必传
 * @param {array} centerCoor 中心点坐标（数组形式）
 * @param {int} zoom 地图初始的缩放级别，非必传，默认0级
 * @param {string} proj 地图坐标系，非必传，默认为EPSG:4326
 * @param {int} minZoom 地图可缩放的最小级数，非必传，默认0级
 * @param {int} maxZoom 地图可缩放的最大级数，非必传，默认19级
 * @return {*} 创建好的地图对象
 */
function init(containerId, mapView, centerCoor, zoom, proj, minZoom, maxZoom) {
    //坐标系
    const projection = proj || 'EPSG:4326';
    //视图
    let view;
    if (mapView) {
        //用于复制地图视图
        view = mapView;
    } else {
        view = new View({
            center: centerCoor || [0, 0],
            projection: projection,
            zoom: zoom || 0,
            minZoom: minZoom || 0,
            maxZoom: maxZoom || 18
        });
    }

    // 自定义交互数组，排除 DoubleClickZoom 交互
    const interactions = defaultInteractions({
        doubleClickZoom: false
    });
    //创建地图
    const map = new Map({
        target: containerId,
        view: view,
        controls: [],
        interactions: interactions
    });
    return map;
}
export default {
    init
};
